package com.example.demo.DateTest;


import com.example.demo.DateTest.util.DateUtil;

import java.util.Date;

/**
 * @author LHH
 * @date 2025/5/15
 */
public class DateUtilApi {

    public static void main(String[] args) {

        /** ----------------*/

//        String workStartTime = "2025-05-14 08:20:30";
//        String workEndTime = "2025-05-14 19:32:16";
//        String workStartTime = "2025-05-14";
//        String workEndTime = "2025-05-15";
//        long seconds = DateUtil.dateDiff(DateUtil.DateSort.SECOND.getName(), workEndTime, workStartTime);
//
//        System.out.println(seconds);

        /** ----------------*/

        long parkduration = 1001L;
        System.out.println(formatDuration(parkduration));

        /** ----------------*/
    }


    public static String timeDifference(Date startDate, Date endDate) {
        // 如果结束时间小于开始时间，返回-1秒
        if (endDate == null || startDate == null || endDate.before(startDate)) {
            return null;
        }

        // 计算时间差（毫秒）
        long diffInMillis = endDate.getTime() - startDate.getTime();

        // 转换为秒
        long totalSeconds = diffInMillis / 1000;

        // 计算小时、分钟和秒
        long hours = totalSeconds / 3600;
        long remainingSeconds = totalSeconds % 3600;
        long minutes = remainingSeconds / 60;
        long seconds = remainingSeconds % 60;

        // 根据不同情况构建返回字符串
        StringBuilder result = new StringBuilder();

        // 处理小时部分
        if (hours > 0) {
            result.append(hours).append("小时");
        }

        // 处理分钟部分（如果小时存在且分钟为0，则不显示分钟）
        if (minutes > 0 || (hours == 0 && minutes == 0)) {
            result.append(minutes).append("分钟");
        }

        // 处理秒部分
        if (seconds > 0 || (hours == 0 && minutes == 0)) {
            result.append(seconds).append("秒");
        }

        return result.toString();
    }

    public static String formatDuration(long datePark) {
        // 如果毫秒值小于0，返回-1秒
        if (datePark < 0) {
            return "-1秒";
        }

        // 计算小时、分钟和秒
        long hours = datePark / 3600000; // 1小时 = 3600000毫秒
        long remainingMillis = datePark % 3600000;
        long minutes = remainingMillis / 60000; // 1分钟 = 60000毫秒
        long seconds = (remainingMillis % 60000) / 1000; // 剩余毫秒转秒

        // 根据不同情况构建返回字符串
        StringBuilder result = new StringBuilder();

        // 处理小时部分
        if (hours > 0) {
            result.append(hours).append("小时");
        }

        // 处理分钟部分（如果小时存在且分钟为0，则不显示分钟）
        if (minutes > 0 || (hours == 0 && minutes == 0)) {
            result.append(minutes).append("分钟");
        }

        // 处理秒部分
        if (seconds > 0 || (hours == 0 && minutes == 0)) {
            result.append(seconds).append("秒");
        }

        return result.toString();
    }
}
